7. Un student care pleaca in stagiu Erasmus trebuie sa isi pregateasca o fisa de pre-echivalare. In fisierul Excel din folderul de resurse veti gasi un astfel de model de fisa de pre-echivalare. Acest fisier contine lista de discipline de pa UPT in coloana din stanga si lista de discipline de la universitatea gazda in dreapta. Fiecare disciplina din stanga va fi echivalata cu disciplina din dreapta pe linie. In cazul in care nr de discipline din dreapta sunt mai putine ca cele din stanga, o parte din ele pot aparea pe inca o linie dar fara a mai copia nr de credite. La final de stagiu Erasmus pe baza tabelului si a notelor obtinute studentului i se genereaza procesul verbal de echivalare. Acesta poate fi vazut in fisierul docx din folderul de resurse. Aplicatia trebuie sa ofere urmatoarele functionalitati. - sa citeasca un fisier Excel cu discipline - sa permita editarea prin program a disciplinelor - sa efectueze o verificare a creditelor, in sensul ca, creditele de la UPT trebuie sa fie acoperite (>=) de creditele de la universitatea gazda - sa exporte in format Excel tabelul de discipline (in urma modificarilor) - sa genereze tabelul de echivalare final in format docx. Pentru a citi si genera fișiere Excel (.xlsx) într-o aplicație de consolă C#, poți folosi librăria ClosedXML, care simplifică interacțiunea cu fișierele Excel fără a necesita instalarea Microsoft Excel pe calculator. 1. Instalează ClosedXML În Visual Studio, deschide Package Manager Console și rulează comanda: Install-Package ClosedXML Alternativ, poți adăuga pachetul din NuGet Package Manager căutând ClosedXML. 2. Exemple de cod După instalare, poți folosi codul de mai jos pentru a citi date dintr-un fișier .xlsx. using System; using ClosedXML.Excel; class Program { static void Main(string[] args) { // Specifică calea către fișierul Excel string filePath = @"C:\calea\catre\fisier.xlsx"; // Deschide fișierul Excel using (var workbook = new XLWorkbook(filePath)) { // Selectează foaia de lucru (sheet-ul) dorită var worksheet = workbook.Worksheet(1); // sau numele foii: workbook.Worksheet("Sheet1") // Iterează prin rândurile și coloanele foii de lucru foreach (var row in worksheet.RowsUsed()) { foreach (var cell in row.CellsUsed()) { Console.Write(cell.GetValue() + "\t"); } Console.WriteLine(); } } } } Deschiderea fișierului: new XLWorkbook(filePath) deschide fișierul .xlsx specificat. Selectarea Foii de Lucru: workbook.Worksheet(1) alege prima foaie de lucru din fișier. Poți folosi și numele foii, de exemplu: workbook.Worksheet("Sheet1"). Iterarea prin celule: Folosim RowsUsed() pentru a itera doar prin rândurile folosite, iar CellsUsed() pentru a obține doar celulele cu date. Observații ClosedXML gestionează automat închiderea fișierului și eliberarea resurselor după utilizare datorită using statement-ului. Referință pentru valori: cell.GetValue() extrage valoarea din celulă și o converteste la tipul specificat (aici string). Acest cod ar trebui să afișeze datele din fișierul Excel în consolă, fiecare celulă fiind separată de un tab pentru lizibilitate.